package com.kuqi.controller;

import com.kuqi.domain.Role;
import com.kuqi.service.RoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.annotation.WebServlet;
import java.util.List;

/**
 * @author:kuqi
 * @createTime:2021/10/16 10:42
 * @description:
 */


//@WebServlet("/role/list")    //Tomcat中Servlet注解，配置其地址
@RequestMapping("/role")    //SpringMVC中的注解，请求地址映射，相当于@WebServlet注解
@Controller                   //SpringMVC、Spring注解，用在SpringMVC上，表示Spring容器可实例化Bean对象
public class RoleController {

    @Autowired   //依赖注入根据类型匹配
    private RoleService roleService;

    @RequestMapping("/save.do")
    /*
    *   方法的参数列表表示，SpringMVC自动匹配前端传递来的参数，封装到Role对象中。
    *   相当于request.getParameter("xx")--->role.setXXX(...)
    * */
    public String save(Role role){
        roleService.save(role);
        return "redirect:/role/list.do";  //添加记录完成，重定向到Role列表页面
    }



    /*
    *   ModelAndVie是SpringMVC框架中的一个对象，用来封装请求地址的数据和页面;
    *   表示一种页面的跳转
    * */
    @RequestMapping("/list.do")  //请求地址映射用于和方法或类的注释，相当于Tomcat中Servlet的WebServlet注解
    public ModelAndView getRoleList(){

        //创建页面跳转ModelAndVie对象
        ModelAndView modelAndView = new ModelAndView();

        //调用service层的方法
        List<Role> roleList = roleService.getRoleList();

        //将返回的数据发送给前端
        modelAndView.addObject("roleList",roleList); //将数据添加到ModeAndView页面跳转对象中。

        //设置视图，即跳转的页面
        modelAndView.setViewName("role-list");

        return modelAndView;
    }

}
